import axios, { AxiosInstance, AxiosResponse } from 'axios';
const axiosInstance: AxiosInstance = axios.create({
	baseURL: import.meta.env.VITE_APP_BASE_API,
	timeout: 20000, // 请求超时20s
});

// 前置拦截器（发起请求之前的拦截）
axiosInstance.interceptors.request.use(
	(config) => {
		// 添加Token等操作
		return config;
	},
	(error) => {
		return Promise.reject(error);
	}
);

// 后置拦截器（获取到响应时的拦截）
axiosInstance.interceptors.response.use(
	(response: AxiosResponse) => {
		return response.data;
	},
	(error) => {
		if (error.response && error.response.data) {
			const code = error.response.status;
			const msg = error.response.data.message;
			console.error(`Code: ${code}, Message: ${msg}`);
			console.error(`[Axios Error]`, error.response);
		} else {
			console.error(`${error}`);
		}
		return Promise.reject(error);
	}
);

export default axiosInstance;
